package simple;

/**
 *
 * 给定一个字符串，找到它的第一个不重复的字符，并返回它的索引。如果不存在，则返回 -1。
 *
 * 示例：
 * s = "leetcode"
 * 返回 0
 * s = "loveleetcode"
 * 返回 2
 * 提示：你可以假定该字符串只包含小写字母。
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/first-unique-character-in-a-string
 * @author liujianxin
 * @date 2020/7/27 9:46
 */
public class FirstUniqChar {

    public static void main(String[] args) {
        int sdfsdfaaacttz = firstUniqChar("sdfsdfaaacttz");
        System.out.println(sdfsdfaaacttz);
    }

    static int firstUniqChar(String s) {
        char[] chars = s.toCharArray();
        short[] arr = new short[26];
        for(Character chr : chars){
            int c = chr - 'a';
            arr[c] = arr[c] == 0 ? (short) 1 : -1;
        }
        for(int index = 0 ; index < s.length() ; index++ ){
            int c = chars[index] - 'a';
            if(arr[c] == 1){
                return index;
            }
        }
        return -1;
    }

}
